PROGRAM SETDATE; (* BY STEVEN MALECHEK 21-JUN-1985 *) (* MODIFIED 20-JUL-1986 FOR PASCAL 1.3 *) (* Copyright (c) 1985,1986 by Applied Engineering *) USES TIMEMASTERII; TYPE DATE = PACKED RECORD MONTH : 1..12; DAY : 1..31; YEAR : 0..99; END; VAR BLOCK : ARRAY[0..255] OF DATE; PROCEDURE POKE(ADDRESS:INTEGER;VALUE:DATE); (* TO STORE THE NEW DATE INSIDE THE MACHINE *) VAR MEMREF : RECORD CASE INTEGER OF 1: (ADDR:INTEGER); 2: (PTR:^DATE); END; BEGIN MEMREF.ADDR:=ADDRESS; MEMREF.PTR^:=VALUE; END; FUNCTION PEEK(ADDRESS:INTEGER):INTEGER; (* TO READ SYSTEM VERSION NUMBER *) TYPE BYTE=0..255; VAR MEMREF : RECORD CASE INTEGER OF 1: (ADDR:INTEGER); 2: (PTR:^BYTE); END; BEGIN MEMREF.ADDR:=ADDRESS; PEEK:=MEMREF.PTR^ DIV 256; END; BEGIN UNITREAD(4,BLOCK,512,2); (* RESET THE DATE ON BOOT DISK *) WITH BLOCK[10] DO BEGIN MONTH := CLMONTH; DAY := CLDATE; YEAR := CLYEAR; END; UNITWRITE(4,BLOCK,512,2); (* ADDRESS OF DATE INTERNALLY *) (* POKE(-21992,BLOCK[10]); FOR PASCAL 1.1 *) POKE(-18342,BLOCK[10]); (* FOR PASCAL 1.2 AND 1.3 128K *) (* POKE(-21250,BLOCK[10]); FOR PASCAL 1.3 64K *) (* POKE(-21252,BLOCK[10]); FOR PASCAL 1.2 64K *) PAGE(OUTPUT); GOTOXY(5,5); WRITE(TODAY); GOTOXY(25,5); WRITELN(TIME); GOTOXY(8,10); WRITELN('WELCOME TO APPLE PASCAL '); GOTOXY(15,12); WRITELN('FEATURING'); GOTOXY(8,14); WRITELN('THE TIMEMASTER II CLOCK'); GOTOXY(19,16); WRITELN('BY'); GOTOXY(10,18); WRITELN('APPLIED ENGINEERING'); END.